home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1996 April
/
CHIP 1996 aprilis (CD06).zip
/
CHIP_CD06.ISO
/
szgyt
/
unixhist.txt
< prev
next >
Wrap
Text File
|
1996-02-06
|
13KB
|
213 lines
A Unix rövid története
2.0-ás, javított verzió ;-)
A sikertörténet paradox módon egy kudarccal kezdôdik. Az MIT, a Bell
laboratórium és a General Electric a hatvanas évek végén belekezdett egy
nagyszabású kutatási programba, amelynek során egy többfelhasználós,
többfeladatos operációs rendszert szerettek volna írni. A rendszer a
keresztségben a MULTICS nevet kapta (MULTiplexed Information and Computing
Service), és meglehetôsen komoly célok megvalósítását tûzték ki elé. A
fejlesztés PL/I nyelven folyt, annak ellenére, hogy abban az idôben még
egyetlen mûködôképes PL/I fordító sem létezett. Az ehhez hasonló nehézségek
végül a program feladására kényszerítették a kutatókat.
A MULTICS tehát besokallt, ami egyebek mellett azzal járt, hogy a program
egyik résztvevôje kénytelen volt valami egyéb érdekes elfoglaltságot találni
magának. Ken Thompsonról van szó, aki ekkor saját szakállára megírta a
MULTICS egyszerûsített változatát egy használaton kívül lévô PDP-7
számítógépen. Az új operációs rendszer kiherélt változata volt a MULTICSnak,
erre utal szarkasztikus elnevezése is, amelyet Brian Kernighan ragasztott
rá: eunuch multics, röviden UNICS (Uniplexed Information and Computing
Service). Bármennyire földszintes is volt Ken Thompson operációs rendszere,
a MULTICS-al szemben volt egy behozhatatlan elônye: mûködött. 1969-et írtak
ekkor.
Ez a nem elhanyagolható tulajdonság késztette arra Dennis Ritchiet hogy
egész osztályával együtt csatlakozzon a UNIX (közben megváltoztatták a
helyesírást) fejlesztéséhez. Az így megerôsített csapat nekilátott, hogy
elkészítse az operációs rendszer PDP-11 gépen futó változatát. Az ôs-unix
assemly nyelven készült, így újra kellett írni az egészet, valahányszor egy
új, más típusú gépre szerették volna adoptálni. Mivel operációs rendszert
assembly nyelven írni egyáltalán nem szórakoztató dolog, még Ken Thompson
számára sem, ezért kitalált egy B-nek nevezett nyelvet, azzal a szándékkal,
hogy az operációs rendszert ebben írja meg. (A B nyelv a BPCL-bôl származik,
ami pedig a CPL-bôl. A három programozási nyelvben az a közös, hogy igazából
soha egyikük sem mûködött.)
Itt lépett közbe Dennis Ritchie, aki újratervezte a B nyelvet, bevezette a
struktúrákat, és egy tuti fordítót is írt hozzá a PDP-11 gépre. Ken
Thompsonnal közösen újraírták a Unixot ezen tökéletesített nyelven. (A
nyelvnek a C nevet adták, és azóta is sok százezer programozó beszéli ezt a
nyelvet, szerte a világon.)
A Unixról 1974-ben jelent meg az elsô részletes publikáció. Itt érdemes egy
pillanatra megállni és megvizsgálni azokat a körülményeket, amelyek végül
nem várt módon formálták a történelmet. Az egyik ilyen körülmény az volt,
hogy a Bell laboratórium anyavállalata, az AT&T akkoriban ki volt tiltva a
számítógépek piacáról, így a Unixot nem árulhatta pénzért. Semmi sem
indokolta, hogy az operációs rendszert -forráskódjával együtt- ne adják oda
bármelyik egyetemnek. ìgy is tettek. A másik körülmény, hogy a Unix
PDP-11-en futott. Az egyetemeken akkoriban szinte nem is volt más gép, mint
PDP-11. És ezen a ponton a DEC cég is alaposan besegített a Unix
világsikerébe: a PDP-11 operációs rendszere történetesen olyan borzalmas
volt, hogy a felhasználók éjjelente Digitális szörnyetegekkel álmodtak. Ezek
után könnyû kitalálni, hogy mi történt: egyetemek százain kezdték használni
a Unixot, a forráskód birtokában pedig megindult a véget nem érô buherálás.
Közben a Bell laboratórium munkatársai sem ültek karbatett kézzel: a PDP-11
után következô célpontjuk egy Interdata 8/32 számítógép Unixosítása volt.
Mivel az operációs rendszer C-ben volt írva, ez mindössze annyit jelentett,
hogy az Interdata gépen egy C fordítóval lefordítják a PDP-11-en
kifejlesztett forráskódot. Ez egyszerû feladat, feltéve, hogy az Interdata
gépen van C fordító. Nem volt, így elôbb írni kellett egyet. Mivel minden,
más gépre való adoptálás a C fordító adoptálásával kezdôdik, ezért Steve
Jhonson írt egy "portable C compiler"-t, ami viszonylag kevés munkával
bármilyen gépre átírható. (Ezután még sokáig ez képezte minden új C fordító
alapját.)
Az Interdata Unixosítása során két komoly nehézség merült fel. Az elsô az,
hogy a PDP-11 Unixban a fejlesztôk néhány dolgot természetesnek vettek
(például azt, hogy az egész számok és mutatók 16 bitesek, a központi
egységnek pedig három regisztere van.) Ezek közül az Interdata gépen egyik
sem teljesült, így elég sok munkába került, mire a forráskódot e feltételek
kezelésére is felkészítették.
A másik nehézség a földrajzi távolságból adódott: a PDP-11 a negyedik
emeleten volt, az Interdata pedig a földszinten. A munka úgy zajlott, hogy a
negyediken lefordították a készülô operációs rendszer kódját, majd a
mágnesszalgokkal lesétáltak a földszintre hogy megnézzék, vajon mûködik-e?
Valószínûleg ekkor kezdtek el komolyan foglalkozni a gondolattal, hogy a
számítógépeket hálózatba kellene kötni.
A következô mérföldkövet az amerikai kormány rakta le azzal, hogy részekre
bontotta az AT&T vállalatot, az utódok számára pedig megnyitotta az utat a
számítástechnikai ipar felé. Hamarosan megjelent az elsô kereskedelmi Unix
változat, System III néven. Nem igazán volt sikeres, így egy évvel késôbb
megjelent a System V nevû javított változat. (Hogy hová lett a IV-es
változat, az egyike a számítástechnika máig megoldatlan rejtélyeinek.) A
System V több kiadást is megért, ezek Release 2, 3 és 4 néven ismertek.
A számtalan Unix-buheráló egyetem közül kiemelkedik a University of
California at Berkeley. Ök számos ponton javítottak az AT&T-tôl valaha
ingyen kapott Unixon, gyorsabb fájlrendszert írtak, elkészítették a VAX-on
futó változatot, beépítették a hálózatkezelést (ami TCP/IP néven legalább
olyan erterjedt a hálózati protokollok között, mint a C a programozási
nyelvek terén), valamit számos segédprogramot (csh, vi, Lisp fordító, Pascal
fordító, stb.) Az egyetem kereskedelmi változatú szoftvercsomaggá formálta
az általuk fejlesztett Unix változatot és BSD (Berkeley Software
Distribution) néven terjeszteni kezdte. (Ök mostanában a 4.3-as verziónál
tartanak.)
Amint látható, a nyolcvanas évek végére a Unix-világot két különbözô,
egymástól sok dologban eltérô Unix uralta. Ez elsôsorban azzal a szomorú
következménnyel járt, hogy a System V Unix alatt írt C programra a BSD-s
rendszerek fordítói fityiszt mutatnak, és fordítva. A C nyelv
fordításvezérlô direktíváival (#ifdef , #ifndef, #endif) ugyan úrrá lehet
lenni a helyezeten, de ez egyúttal azt jelenti, hogy a C programot minden
géphez át kell egy kicsit alakítani, "portolni" kell.
Nagyjából minden nagyobb számítógép gyártó a két elterjedt rendszer (System
V, BSD) valamelyikén alapulva készítette el saját Unix változatát. Mivel az
inkompatibilitás senkinek nem tesz jót, ezért az AT&T kibocsátott egy
szabvány ajánlást, az SVID-t (System V Interface Definition), amiben azt
írja le, hogy szerintük mit kell tartalmaznia az egységes Unixnak, ami
lehetôleg a System V legyen. A Berkeley Egyetem, és a BSD-nek elkötelezett
Unix gyártók természetesen a figyelmen kívül hagyták az SVID-t szabványt, s
ezzel kezdetét vette a System V kontra BSD "Unix háború ".
Az elsô nem csak kibocsátója által elfogadott szabványt az IEEE hozta létre,
Portable Operaring System (rövidítve: POS) néven. Hogy Unixosabban
hangozzék, a rövidítéshez hozzábiggyesztették az IX betûket: így lett a
dologból POSIX. E szabvány azt írja le, hogy egy "hordozható" operációs
rendszernek hogyan is kell kinéznie. Minden nagy gyártó elismeri a POSIX
jelentôségét, operációs rendszereiben támogatja is azt. Mindazonáltal ez nem
akadályozza meg ôket abban, hogy olyan kiegészítéseket, nem szabványos
interfészeket és egyéb szolgáltatásokat építsenek be a termékükbe, amitôl a
különbözô rendszerek továbbra is inkompatibilisek lesznek. A riválisok két
szervezetbe tömörültek, a lövészárkok egyik oldalán a DEC által vezetett
Open Systems Foundationt (OSF) találjuk, velük szemben pedig az AT&T
alapította Unix International (UI) szövetséget.
Vizsgáljuk meg egy kicsit közelebbrôl e nagy háborúskodás okát! Az
ôsidôkben, mikor néhány számítástechnikai mamutcég uralta a piacot, a
számítógépek "önmagukkal" voltak kompatibilisek, azaz ha elromlott egy
alkatrész, vagy a rendszert bôvíteni akarták, a berendezéseket kizárólag az
eredeti gyártótól lehetett beszerezni. A mamutok alaposan vissza is éltek
azzal, hogy a vásárló még a portörlô rongyot is kénytelen tûlük vásárolni,
egy-egy alkatrészért szemrebbenés nélkül elkérték a piaci ár háromszorosát.
(Néhány cég ma is folytatja ezt a gyakorlatot.)
A védekezést az jelentené, ha a különbözô gyártók számítógépei hajlandók
lennének együttmûködni, azaz eltérô típusú gépekbôl is lehetne rendszert
építeni. Ez egyrészt nagyobb szabadságot adna a felhasználóknak a
vásárlásnál, másrészt esélyt biztosítana a gyártóknak, hogy berendezéseiket
minél szélesebb körben vásárolják. Egy ilyen nyitott rendszerbe utólag
bármelyik cég szoftverét vagy számítógépét be lehet illeszteni: ezt az álmot
hívják "nyílt rendszereknek" (Open Systems).
Nyilvánvaló, hogy a nyílt rendszerek kulcsfontosságú kérdése a minden gyártó
által elfogadott (és be is tartott) szabvány. Ha ezt a szabványt egy gyártó
bocsátaná ki, akkor ezáltal elônyhöz jutna a piacon. A vallásháború
lényegében azért tört ki, hogy eldöntsék, kinek a rendszerét fogadják el
szabványként. Mivel egyik félnek sem sikerült felül kerekednie, a
kilencvenes évek elején létrehoztak egy gyártófüggetlen szervezetet a nyílt
rendszerek szabványainak elkészítésére és a "szabványnak megfelel"
minôsítések kiadására. Ez a szervezet az X/Open, az általuk készített
operációs rendszer szabvány neve pedig Core OS API, más néven Common API. A
szabványt a benne leírt specifikációk alapján hívják Spec 1170-nek is, sôt
egy további neve is van: UNIX 95. (A Microsoft még nem indított plágium pert
:-)
Ha egy operációs rendszer átmegy az X/Open minôsítô tesztjein, megkapja a
UNIX 95 minôsítést. A "levizsgáztatott" operációs rendszerre írt programok
forráskódja hordozható, azaz buherálás nélkül le lehet fordítani egy másik
gyártó ugyancsak UNIX 95 kompatibilis operációs rendszerén.
Nézzük, mit lát a UNIX 95-bôl az egyszerû felhasználó! Hmmm....egy
ugyanolyan mezítábas parancssort, mint amilyet húsz évvel ezelôtt. A
szabványban ugyanis nem szerepel a grafikus felhasználói felület, amelynek
egységesítéséért ugyancsak ádáz küzdelem folyik. Készült ugyan egy CDE
(Common Desktop Environment) nevû szabvány, amit XCDE néven az X/Open is
átvett, de a gyártók nem sietnek saját grafikus felületüket e szabványhoz
igazítani. Ennek persze nem az az oka, hogy az igazi UNIX buherátorok csak a
parancssorban érzik igazán jól magukat, hanem az, hogy a UNIX alatt futó
alkalmazások (például a nagy adatbázis-kezelô rendszerek) karakteres alapon
mûködnek. ìgy aztán jóval kevesebb gyártót érint a grafikus felhasználói
felület ügye.
Pedig nekik is lenne mitôl félniük, mert a PC világban grafikus szabványt
teremtô Microsoft a kertek alatt már javában nyomul a nyílt rendszerek felé.
Charles Simonyi (na tessék, megint egy magyar!), a Microsoft második embere
már a kilencvenes évek elején azt nyilatkozta a Számítástechnika címû újság
riporterének, hogy: "Ha valaki azt mondja, hogy UNIX, úgy gondolom, nem
ôrûlt. Lehet, hogy még nem hallott az NT-rôl." A redmonti programozók szép
csendben összehoztak kliens-szerver alapú, mikrokerneles, több féle
processzoron is futó operációs rendszert, a Windows New Technology-t. Az NT
legelsô változatának grafikus felülete ránézésre ugyanolyan volt, mint a jó
öreg Windows 3.1-é; mégpedig azért, hogy a felhasználók számára ismerôs
legyen.
A felhasználó pedig ránézett a Windows NT-re és így szólt magában: "Jééé, ez
ugyanúgy néz ki, mint a Windows 3.1! Akkor biztosan ez is ugyanolyan gagyi!"
Hosszú idônek kellett eltelnie, mire a felhasználók feleszméltek, hogy
kivételesen nem egy jól reklámozott videojátékkal, hanem egy véresen komoly
operációs rendszerrel állanak szemben. Mi áll az NT hátterében? Mikor Bill
Gates elhatározta, hogy célba veszi a kiszolgáló gépek piacát, azzal kezdte
a munkát, hogy keresett egy embert, aki tud operációs rendszert írni. (Ez
az, amit az MS-DOS megalkotásakor sajnálatos módon elmulasztott.) Az illetô
pedig nem más, mint a VMS operációs rendszer apukája - a Windows NT tehát
több szempontból is a VMS utódjának tekinthetô. (Egy érdekes szójáték is
alátámasztja ezt: ha a VMS betûi helyett sorban az ábécé következô betûit
vesszük, a WNT szót kapjuk eredményül.)
Mit hoz a jövô? Nem kétséges, hogy újabb háborút. A UNIX világnak pedig
alighanem alaposan össze kell szednie magát, ha nem akar érzékeny
veszteségeket szenvedni a Microsoft elleni harcban...
Megjegyzések
Igazságtalanok lennénk ha elhallgatnánk, hogy pár évvel késôbb a MULTICS
mégis elkészült, a mai napig is kapható, a Unix sikerét azonnban soha nem
közelítette meg.